import Vue from "vue";
import store from "./store";
// 缓存vuex默认的所有state状态
Vue.prototype.$defaultVuexState = JSON.parse(JSON.stringify(store.state));

import "@/components/element"; // element全局组件
import "@/components/components"; // 自定义全局组件
import "@/utils/flexible"; // 缩放规则
import "@/utils/filter"; // 全局筛选器
import "@/assets/scss/index.scss"; // 全局scss
// 非开发环境禁止console
if (process.env.NODE_ENV !== "development") {
  const nullFn = function() {};
  console.log = nullFn;
  console.dir = nullFn;
}

// 计算插件 防止精度丢失
import BigNumber from "bignumber.js";
//加法
Vue.prototype.$plus = function(...arr) {
  return myCount("plus", ...arr);
};
//减法
Vue.prototype.$minus = function(...arr) {
  return myCount("minus", ...arr);
};
//乘法
Vue.prototype.$mult = function(...arr) {
  return myCount("multipliedBy", ...arr);
};
//除法
Vue.prototype.$divi = function(...arr) {
  return myCount("dividedBy", ...arr);
};
// 计算函数
function myCount(type, ...arr) {
  let countAll = new BigNumber(arr[0]);
  for (let i = 1; i < arr.length; i++) {
    const item = arr[i];
    countAll = countAll[type](item);
  }
  return countAll.toNumber();
}
